Interactive control system for packaging control of contact lenses

ABSTRACT

An interactive control system for controlling the automatic packaging of contact lenses in a contact lens fabrication facility, the interactive control system consisting of a first robot device for periodically transferring individual arrays of a first predetermined amount of discrete contact lens packages each containing a contact lens therein from a first station to an intermediate conveyor where the individual arrays are conveyed to a second station, and a controller for initiating a time stamp for each individual array transferred from the first station and determining elapsed time data for each individual array and for generating position status data indicating a good array or a bad array of defective lenses for each individual array as it is conveyed to the second station, the controller shifting the elapsed time data and position status data for each individual array as it is conveyed on the intermediate conveyor for transfer to the second station.

FIELD OF THE INVENTION

This invention relates generally to a contact lens manufacturingfacility for producing ophthalmic contact lenses, and, in particular toa control system for consolidating the serial flow of lens packages forpackaging thereof.

DESCRIPTION OF THE PRIOR ART

The direct molding of hydrogel contact lenses is disclosed in U.S. Pat.Nos. 4,495,313 to Larsen, 4,680,336 to Larsen et al., 4,565,348 toLarsen, and 4,640,489 to Larsen et al., the entire disclosures of whichare hereby incorporated by reference in this patent application.Essentially, these references disclose an automated contact lensproduction process wherein each lens is formed by sandwiching a monomerin a mold cavity formed between back curve (upper) and front curve(lower) mold halves. The monomer is polymerized, thus forming a lens,which is then removed from the mold cavity and subject to furtherprocessing such as hydration, automatic lens inspection (ALI), andpackaging for consumer use.

Prior art processes significantly reduce the thruput time by hydratingthe lens and releasing the lens from the mold cavity with ionized waterand a small amount of surfactant without any salts, so that the timeconsuming ionic neutralization of the polymer from which the lens blankis made does not occur during the hydration process. When deionizedwater is used, the final step of the process is to introduce bufferedsaline solution into the final package with the lens and then seal thelens within the package so that the final lens equilibrium (ionicneutralization, final hydration and final lens dimensioning) isaccomplished in the package at room temperature or during sterilization.

In view of the foregoing, it is necessary to remove the deionized waterfrom the packages to enable the package to be filled with bufferedsaline solution. However, the final product is defective if the lensesremain dry for an extended period of time and if they experiencehigh-speed movement causing dislocation of the lenses. Thus, the timethat the de-ionized water is removed from the packages to the time thatthe packages are filled with a saline solution at a subsequent packagingstation, must not exceed a predetermined time limit.

Therefore, it would be highly desirable to incorporate in a lenspackaging station, a control means for tracking the elapsed time thatindividual lens packages or arrays of lens packages are maintained in adry state after deionized water removal.

It would also be highly desirable to incorporate in a lens packagingstation, a control means for tracking the position of each lens packageor arrays of lens packages from a deionized water removal station to alens packaging station in addition to tracking the elapsed dry-timestatus of each the lens package array.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a packaging controlsystem for controlling the automatic, high-speed transport of products,such as contact lenses contained in a package, from an automatic productinspection station to a product indexing package dial.

It is a further object of the present invention to provide a packagingcontrol system that tracks discrete arrays of products conveyed on aserial flow production line.

Another object of the present invention is to provide a packagingcontrol system that calculates elapsed time and positional statusinformation for each array of products transferred from a first stationand conveyed to a second packaging station.

It is yet another object of the present invention to provide a packagingcontrol system that incorporates means for rejecting individual units ofeach array of products when it is determined that the individual productis defective as determined by an automatic inspection system.

It is yet still a further object of the present invention to provide ameans for consolidating random variations in product flow along aproduction line as individual units from each array are rejected asbeing defective.

Still yet another object of the present invention to provide a controlmeans that enables the conveyance of packages in a first arrangementfrom a first location to a second location where the packages arepicked-up in a second arrangement.

It is further an object of the present invention to provide aconsolidation buffer between two serial production operations, whereinthe number and arrangement of product varies between input and output.The present invention enables use of a first x,y array of product unitsmerging from a serial production line, and consolidating those productunits into a second x,y array of units which corresponds to an arrayused in second production operation relating to the product.

It is further an object of the present invention to provide aprogrammable logic controller which maintains a status count for each ofthe individual products in the consolidation buffers of the presentinvention, including a count for each random addition of product, and aseparate count for each selection and transport of product from thebuffers to the final packaging station.

Still, a further object of the present invention to provide a controlmeans that enables the conveyance of packages in a 2×8 array of discretepackages from a first location to a second location where the packagesare picked-up in a 2×5 array of discrete packages.

Yet still another object of the present invention is to provide apackaging control system having a control means that initiates specificproduct rejection when it is determined that the product has not beenprocessed within a predetermined time parameter.

The above objects are achieved in an interactive control system forcontrolling the automatic packaging of contact lenses in a contact lensfabrication facility, the interactive control system comprising a firstrobot device for periodically transferring individual arrays of a firstpredetermined amount of discrete contact lens packages each containing acontact lens therein from a first station to an intermediate conveyorwhere said individual arrays are conveyed to a second station, and,controller for initiating a time stamp for each individual arraytransferred from said first station and determining elapsed time datafor each individual array and for generating position status dataindicating a good array or a bad array of defective lenses for eachindividual array as it is conveyed to said second station, saidcontroller shifting said elapsed time data and position status data foreach individual array as it is conveyed on said intermediate conveyorfor transfer to said second station.

Further benefits and advantages of the invention will become apparentfrom a consideration of the following detailed description given withreference to the accompanying drawings, which specify and show preferredembodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing objects and advantages of the present invention for acontact lens production line pallet system may be more readilyunderstood by one skilled in the art with reference being had to thefollowing detailed description of several preferred embodiments thereof,taken in conjunction with the accompanying drawings wherein likeelements are designated by identical reference numerals throughout theseveral views, and in which:

FIG. 1 is a simplified diagrammatic illustration of a contact lenspackage consolidation system incorporating the interactive packagingcontrol system of the instant invention;

FIG. 2 is an isometric view of a contact lens carrier which serves asboth an inspection carrier, and a portion of the final contact lenspackage.

FIG. 3 is an isometric view of an inspection carrier used to transport aplurality of the contact lens carriers illustrated in FIG. 2 through theautomated lens inspection station.

FIG. 4 is an elevation view of the automated lens inspection system andthe stations utilized in the initial handling of the lenses prior tolens package consolidation.

FIG. 5 illustrates in detail an individual robotic handling devicetransporting contact lens carriers to the consolidation vacuum rail ofthe present invention.

FIG. 6 illustrates the PLC flow diagram for accomplishing DI-waterremoval at the deionized water removal station.

FIGS. 7(a), (b) and (c) illustrate the detailed PLC flow diagram fortransferring packages from the DI-water removal conveyor to the vacuumrail stack, and for balancing the placement of good lens packages on thestack.

FIGS. 8(a) and 8(b) illustrate the detailed PLC flow diagram forcalculating the total number of packages to be transferred from one railof the stack to the other rail for accomplishing balancing.

FIGS. 8(c) and 8(d) illustrate respective detailed PLC flow diagrams fordetermining which specific packages held by the robot gripper are to betransferred from vacuum rail A to B or vacuum rail B to A, respectively,for balancing.

FIG. 9 illustrates the detailed PLC flow diagram for controlling packagelens consolidation on the vacuum rail stack of the packaging station.

FIGS. 10(a)-10(f) illustrate the detailed PLC logic flow diagram fortransferring packages containing contact lens to either the indexingrotary package dial, or, the consolidation buffer area.

FIG. 11 illustrates a plan view of the rotary indexing package dial 200and the stations thereat for processing the contact lens packages afterconsolidation.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 1, there is shown a simplified diagrammatic view ofthe packaging system 10 implemented in a contact lens fabricationfacility having an automatic lens inspection system and automated lenspackage consolidation system. The operational details of the lenspackage consolidation system 10 may be found in co-pending patentapplication U.S.S.N. entitled "Automated Apparatus and Method forConsolidating Products for Packaging" assigned to the same assignee asthe instant invention, the disclosure of which is incorporated byreference herein.

The production of the contact lens itself is fully explained inco-pending patent application U.S.S.N. 08/258,654 entitled "ConsolidatedContact Lens Molding" assigned to the same assignee as the instantinvention. As described in the above-mentioned co-pending patentapplication U.S.S.N. 08/257,791, and, in further view of FIG. 4, arraysof soft contact lenses are transferred from a hydration station (notshown), after being subject to a hydration process, and placed inindividual package bottoms (packages) loaded in an inspection pallet bya robotic apparatus 22 for conveyance through a post hydration automaticlens inspection (ALI) station 20, and, a DI water removal station 25 ofthe contact lens fabrication facility. The loaded pallet is first movedby a conveyor (not shown) to a deionized water injection station 16wherein each of the packages transported on the inspection pallet arepartially filled with degassed and deionized water. The inspectionpallet is then transferred by a push conveyor to an overhead doubleindex conveyor and then handled by a side grip conveyor as it conveyedthrough the ALI station. After deionized water removal and roboticdevice pick-up, the inspection pallet is subsequently returned toreceive a new set of packages where the process is repeated.

FIG. 2 illustrates the preferred embodiment of the lens package base 15for carrying a contact lens, and, FIG. 3 illustrates the preferredembodiment of a lens inspection pallet 16 for carrying a predeterminednumber of the contact lens packages, one of which is shown in thepallet, throughout the automatic lens inspection (ALI) station and lenspackage consolidation station 10. The structural details of both lenspackage 15 and lens package pallet 16 are described in detail in theabove-mentioned co-pending patent application patent applicationU.S.S.N. 08/257,791. As can be seen in FIG. 3, the lens package pallet16 is capable of carrying up to sixteen (16) packages in a 2×8 array.

As shown generally in FIG. 1, the packaging control system 11 includes acontrol device 100 which may be a computer or one or more programmablelogic controllers (PLC) and a corresponding memory device 102 forcontrolling the serial conveyance and robotic handling of packages froman automatic inspection station 20 to a packaging dial 200 wheresecondary packaging of the contact lens package is commenced. Morespecifically, the packaging control system functions to keep track ofgood lens/defective lens status information as determined at the ALIstation 20; to control the deionized water removal for each lens packageprior to conveyance to a packaging dial; to control robotic handling andtransfer of lens packages from the deionized (DI) water removal station25 to a consolidation vacuum rail or stack 50, including enablingrejection of specific lens packages containing defective lenses asdetermined at the ALI station; to consolidate the serial flow of lenspackages on the stack 50 when particular packages have been rejected ascontaining defective lenses; to keep track of the time elapsed fromdeionized water removal to placement at a delivery location 202 on thepackaging dial 202 for each lens package array; to control robotichandling of package arrays containing ten packages in a 2×5 array fromthe vacuum rail to a support pallet 201 indexed by the rotary indexingpackaging dial 200 to ensure serial flow thereto; to control the storageand retrieval of lens package arrays from support pallets 201 located ata lens package buffer storage area 180 if a lens package array can notbe placed on the support pallet at the indexing package dial, or, if thevacuum rail cannot supply packages to the dial when requested; and, tocontrol specific lens packaging processes at a variety of processstations located about the rotary indexing package dial that include: averification station 204 for verifying the presence and alignment ofeach package array base in the support pallet; a saline dosing station206 that is provided with an array of dosers for depositing a givendosage of saline solution in each package; a saline level checkingstation 208; a final product check station to a foil receiving station210, where a sheet of laminated covers is picked and placed over thearray of package bases; a heat sealing station 212 wherein a heated sealhead heat seals the laminated covers to each package base; and, anunloading radial station 214 where an unloader arm unloads the sealedpackages from the rotary indexing package dial for subsequentprocessing.

In the preferred embodiment shown in FIG. 1, control means 100constitutes a single PLC, and associated circuitry and software, forproviding the tracking and serial flow of products. Preferably, the PLCis a TI system 545 (Texas Instruments). The PLC is programmed withApplication Productivity Tool (APT) software. As shown in FIG. 1, amemory storage device 102 having adequate addressing and storagecapabilities for the PLC 100 to access and process data in the form ofelapsed dry-time information and positional status information, isprovided. Specifically, the elapsed dry-time information indicates thetime elapsed from deionized water removal of a particular lens packageat the DI water removal station, to its placement on the packaging dial.If the elapsed time for any particular package is determined to be overa specific limit, then the lens package array containing that timed outlens package will subsequently be rejected by the second buffer robot.Elapsed dry-time information for each lens package array describedhereinafter, is contained in the variable POS ARR[i], where index i=1, .. , 50, 60, 61, and 101 i.e., and STACK₋₋ ARR[j], where index j=1, 2 . ., 10 the major locations designated in this portion of the packagingsystem. In the preferred embodiment, elapsed dry-time data is shiftedwithin these variables (16-bit registers) in memory 102 as each lenspackage array is conveyed to the different positions.

The positional status information for each lens package array representsthe good/bad status of that package array throughout locations of thepackage consolidation station of the lens packaging station, and,particularly, the locations on the serial vacuum rail and buffer storagearea. Positional status information for each lens package arraydescribed hereinafter, is represented as the variable POS₋₋ OCC[i],where the index i=1, . . , 50, i.e., and STACK₋₋ ARR[j], where the indexj=1, 2, . . , 10, the major locations that a particular lens packagearray occupies. The values stored in this array may either be a "0",indicating that the particular location is not occupied by a lenspackage, a "1", indicating that the lens package at that array is good,or, a "2" indicating that the package array at that particular locationcontains a defective lens package due to elapsed dry time. As shown inFIG. 1, the indexes for the STACK₋₋ ARR[i] and STACK₋₋ OCC[i] arrays areindicated in brackets {} wherein: the position indicated as {10}represents the DI water removal location where time stamping isinitiated; position {9} represents the package array pick-up point atthe DI water removal conveyor 26 location; position {8} represents thegood/bad robot tooling (gripper) location when the robot gripper 45holds an array of packages; position {7} represents the package deliverypoint at the vacuum rail 50; positions {6}- {1} represent the locationson the vacuum rail 50 (stack) as lens packages are forwardly advancedand accumulate thereon for buffer robot pickup at transfer point 57; thepositions represented by POS₋₋ ARR[i] and POS₋₋ OCC[i] arrays are thepositions located in the buffer area and the rotary package dial 200.For instance, the position indicated as {50} in FIG. 1, represents thebuffer robot tooling (gripper) location when the robot gripper 65 holdsan array of packages for transfer. Other variables used in the packagingcontrol system will become evident as discussed below.

DI Water Removal Station

As shown in FIG. 1, the contact lenses contained in their packagebottoms in a deionized water solution are transported from the ALIstation 20 in the direction of arrow "A" to a deionized water removalstation 25 where the deionized water must be removed from the package toenable subsequent filling with buffered saline solution. Specifically,the DI water is removed to enable each package array to be swiftlytransferred from serial flow out of the ALI station 20 to the vacuumrail 50, and, from the vacuum rail 50 to the buffer storage area 180,or, support pallet 201 on package dial 200. However, a contact lens willbe considered defective if it remains dry for 14 minutes or longer.Thus, it is necessary that after DI water removal occurs, the PLC 100initiate a time stamp to enable elapsed dry-time tracking in PLC memory.

As shown in FIG. 4 and the process flow chart of FIG. 6, DI-waterremoval is accomplished by a pressurized air cylinder 28 havingindividual nozzles (not shown) that are registered above each 2×8 palletcontaining the array of lens packages. The nozzles are speciallyconfigured nozzles, such as described in U.S.S.N. 07/999,234, entitled"Solution Removal Nozzle", assigned to the same assignee as the instantinvention and, the disclosure of which is incorporated by referenceherein. After the air blow pressure check, indicated at step 71 in FIG.6, the air blow cylinder is extended to a lower registered position,indicated at step 73, and the air blow is initiated at step 75. It isunderstood that the force and duration of the air blow upon theindividual lens packages of the array is carefully controlled so as tonot disrupt or remove the contact lens contained therein. Furthermore,the construction of the nozzle is such that a vacuum venturi effect iscreated so that the force of the compressed air enables the DI-water toevacuate the package without harming the lens. After the air blow isterminated at step 77, the air blow cylinder 28 is retracted to itsupper position (not shown) as indicated at step 79. The final stepindicated at step 81 is to initiate the elapsed time stamp information.As shown in FIG. 6 the following variables are initialized:

STACK₋₋ OCC[10]:=1;

STACK₋₋ ARR[10]:=1;

The value of "1" assigned to STACK₋₋ OCC[10] indicates that the position{10}, i.e., DI-water removal position is occupied with a palletcontaining a package array of good lenses. The value of "1" assigned toSTACK₋₋ ARR[10] indicates that the time stamp has been initiated. Itshould be understood that control means 100, as implemented by the PLC,includes a continuously running master clock (not shown) for real timetracking. The current time stamp information is stored as a variableTODS (time of day stamp). As a new time stamp is generated, the old TODSvalue is assigned to the variable OLD₋₋ TODS. The elapsed time, storedas variable ELAP₋₋ SEC is calculated as follows:

    ______________________________________                                        BEGIN                                                                         ELAP.sub.-- SEC                                                                            :=ROUND(TODS-OLD.sub.-- TODS);                                   OLD.sub.-- TODS                                                                            :=TODS;                                                          END                                                                           ______________________________________                                    

This is a free-running math text that is run continuously so thatelapsed time and positional values will always be updated. The maximumdry time exposure that is acceptable is stored in the variable DRY₋₋TIME and is about 14 minutes.

Transfer of Package Array to Robot Pick-Up Point

After deionized water removal from the lens packages, the package arrayis conveyed along DI-water removal conveyor 26 to the first Robotpick-up point where the individual packages 15 containing contact lensesare to be removed from the pallet 16 by a good/bad robot 40 (Robot 1)having a robot gripper 45 with independently actuable vacuum gripperswhich engage the packages at the pick-up point. The pallet 16 containingthe 2×8 array of lens packages is conveyed to the robot 40 pick up point29 as indicated in FIG. 1, and the positional status and elapsed drytime status information is transferred to the positional status arrayfor the Robot 1 pick-up point indicated as position {9} in FIG. 1. Thus,the information from the previous position (DI-water removal position{10}) stored in STACK₋₋ OCC[10] and the elapsed dry-time since DI-waterremoval stored in STACK₋₋ ARR[10] is assigned to the respectivevariables representing the new position STACK₋₋ OCC[9], STACK₋₋ ARR[9],respectively. Specifically,

STACK₋₋ OCC[9]:=STACK₋₋ ARR[10];

STACK₋₋ ARR[9]:=STACK₋₋ ARR[10];

The elapsed time and positional information for the DI-water removalposition {10} is re-initialized for the new process to occur at thatposition. Thus, STACK₋₋ OCC[10]:=0, indicates that there is anunoccupied position at location {10}. Additionally, STACK₋₋ ARR[10]:=0,indicates that there is no time stamp information at the position {10}.The elapsed time that is transferred between the STACK₋₋ ARR[i]registers as the package arrays are transported through the system iscalculated as above.

Transfer of Package Array from Robot to Vacuum Rail

Once the pallet carrying the 2×8 array of lens packages is at the robotpickup position, the PLC commands the robot to pick up all 16 individuallens packages from the array.

As described above and in greater detail in the above-mentionedco-pending patent application U.S.S.N. 08/257,791 incorporated byreference herein, the vacuum gripper 45 of robot apparatus 40 comprisestwo side rows 46(a) and 46(b), of eight (8) individuated vacuum grippernozzles each, that are enabled to pick up to sixteen lens packages at atime (in a 2×8 array) from the package pallet 16 and place up to eight(8) lens packages onto each respective vacuum rail A and B of vacuumrail 50, the cross-section of which is illustrated in FIG. 5. Asdescribed in greater detail below, if any or some of the lenses aredefective as determined at the ALI vision inspection system, then thePLC will command the Robot 40 to reject those specific packages15(a),(b) containing defective lenses, and place them onto rejectconveyor 41 as shown in FIG. 1. Immediately thereafter, the robot 40transfers the remaining lens packages on the vacuum rail stack 50, forconveyance to the packaging dial 200. Thus, in each cycle, there may berandom empty locations on each vacuum rail A and B where a package wouldhave been placed. The vacuum rails A and B thus, need to be consolidatedand the empty locations filled in each cycle to enable the vacuumgripper 65 of buffer robot 60 to pick ten (10) lens packages in a 2×5array from vacuum rail 50 and deposit them in a support pallet 201located at a predetermined position 202 on a the package dial 200, or,in one of a plurality of buffer pallets 201 located at the lens packagebuffer area 180 as shown in FIG. 1 and 11. As explained below, it isdesired to maintain the difference between the amount of lens packagesplaced on rails A and B of vacuum rail 50 to be within one (1) package.

Vacuum Rail Balancing and Consolidation

As shown in FIG. 7(a), an initialization step 111 initializes allsoftware variables and math subroutines and disables all softwareinterlocks for the PLC control. After a start signal is received at step113, the PLC determines at step 115 whether any of the lenses at therobot pick-up point 29 are too old, i.e., if the current elapsed timeSTACK₋₋ ARR[9] is less (<) than the dry time-out limit DRY₋₋ TIME. Ifnot, then the robot gripper 45 will pick up the lenses at thepredetermined array pick-up point 29. Thus, at step 117, the coordinatesof the pick-up position 29 at the DI₋₋ water removal conveyor 26 arecommunicated to the Robot 40 by the PLC. After receiving the robothandshake at step 119, the robot is commanded to move to the pick-upposition at step 121. When the robot reaches the position at step 123, avacuum is applied to nozzle side 46(b) (side B) of the robot gripper sothat up to eight lenses may be picked up from the pallet, as shown atstep 125 in FIG. 7(a). In the preferred embodiment, eight (8) packagesare picked up at a time by the robot 40 for each nozzle side. At step127, a vacuum is applied to nozzle side 46(a) of the robot gripper sothat up to eight lenses may be picked up from the other row of packagesfrom the package pallet. After all sixteen packages are picked up, and,as shown in FIG. 7(a) at step 129, the information from the previousposition (package pick-up position {9}) stored in STACK₋₋ OCC[9] and theelapsed dry-time since DI-water removal stored in STACK₋₋ ARR[9] isshifted to the respective variables representing their new position heldby the robot gripper, i.e., STACK₋₋ OCC[8], STACK₋₋ ARR[8],respectively. Specifically,

STACK₋₋ OCC[8]:=STACK₋₋ ARR[9];

STACK₋₋ ARR[8]:=STACK₋₋ ARR[9];

The elapsed time and positional information from the package pickupposition {9} is re-initialized for the new process to occur at thatposition. Thus, STACK₋₋ OCC[9]:=0, indicates that there is an unoccupiedposition at location {9}. Additionally, STACK₋₋ ARR[9]:=0, indicatesthat there is no time stamp information at the location {9}.

After the robot move to pick-up the array, the previously determinedpass/fail shift register data for the respective lenses in the packagearray is indexed for evaluation by the PLC which will make thedetermination as to whether any particular package is defective. Thisinformation is evaluated by the PLC and communicated to the robot if anylenses need to be rejected. The variables RO₋₋ STAT₋₋ A and RO₋₋ STAT₋₋B are the variables for respective robot gripper sides 46(a) and 46(b)having values from 0 to 255 that indicate which specific lens or lensesare defective. The 16 bit register storing that variable will have alogic 0 in a specific bit location corresponding to a specific numberedlocation, i.e., 1 to 8 (gripper side A) and 9 through 16 (gripper sideB) as illustrated in FIG. 1 to indicate that the lens carried by thatspecific gripper nozzle should be rejected. Thus a value equal to 255indicates that all lenses are good. Any value less than that indicatesthat there exists a defective lens.

As shown in FIG. 7(b), the next function is to move the robot to theposition above the idler conveyor 41 where lenses may be dropped if theyare determined to be defective. Thus, at step 131, the coordinates ofthe idler conveyor position 41 are communicated to the Robot 1 by thePLC. After receiving the robot handshake at step 133, the robot iscommanded to move to the package reject position at step 135. When therobot reaches the position at step 137, the PLC will determine if any ofthe lenses are defective at step 139, and, as indicated by the logic atstep 139a. Thus, the logic:

RO₋₋ STAT₋₋ A<255

RO₋₋ STAT₋₋ B<255

is evaluated. If each relation is true, the robot will dump theindividual defective lens packages from the respective nozzle grippersides on to the idler conveyor 41 as indicated at step 142. If all thelenses for the particular array have failed ALI inspection, i.e., RO₋₋STAT₋₋ A=0 and RO₋₋ STAT₋₋ B=0, as indicated at step 142a, then robotwill return to its home position (step 11 of FIG. 7(a)) as indicated atstep 143, and wait for a request to pick up a new package array at thepackage pick-up point; otherwise, there are still good lenses to betransferred to the vacuum rail 50. Specifically, the PLC first waits fora vacuum rail ready signal as indicated at step 145, and after it isreceived, the PLC communicates the coordinates of the vacuum rail stackdelivery position, position {7}, as indicated at step 147 in FIG. 1, tothe robot 40. After receiving the robot handshake at step 149, the robotis commanded to transfer the remaining good lens packages to the stackposition at step 151. When the robot reaches the stack delivery positionas indicated in FIG. 7(c) at step 153, the PLC will determine, at step155, the difference between the number of lens packages that remaingripped by robot gripper side A and gripper side B to effect balancingof the placement of the packages onto the vacuum rail stack side A, Brespectively, to within one package. FIGS. 8(a) and 8(b) illustrate thePLC programmed logic flow for balancing the vacuum rail stack 50.

The variable arrays VAC₋₋ ARR ₋₋ A[i] and VAC₋₋ ARR ₋₋ B[j], i=1, . . ,8, and j=1, . . , 8, are programmed to hold the RO₋₋ STAT₋₋ A and RO₋₋STAT₋₋ B vacuum status information, respectively, of the robot vacuumgripper nozzles to determine the remaining good packages to betransferred from the robot gripper 45 of first robot assembly 40 torespective vacuum rail lines A and B. Specifically, each of the eight(8) locations of each array are tested to determine if the packages(i.e., lenses) carried by the robot gripper for each vacuum rail A, Bare present, i.e., have not already been determined to be defective andselectively rejected by robot assembly 40 and disposed of at the rejectconveyor 41. If the vacuum status for the specific position of a packageheld by the robot is activated, then the package will be placed on thecorresponding rail array. A running total is kept for each package to betransferred to each vacuum rail A, B. From each total, it is thereafterreadily determined how many packages need to be moved and to which siderail so as to maintain the vacuum rail A, B balance to within one (1)package.

As shown at step 202 in FIG. 8(a), the total count of good packagespresent for transfer to each vacuum rail is initialized at zero for eachrail A, B. Specifically, the variable NUMB₋₋ A and NUMB₋₋ B are setequal to zero and the indexes i,j are each set equal to 1. The nextseries of steps checks the vacuum status information for each packageheld by the robot gripper to determine which packages the robot willtransfer to each vacuum rail. Thus, at step 204, the vacuum status VAC₋₋ARR ₋₋ A[i] for each of the robot pick/place positions for rail A ischecked for each iteration of index i. For each good package present, atally of the total number of good packages NUMB₋₋ A to be transferred toeach side rail A is calculated at step 206 for each iteration. At step208, the vacuum status VAC₋₋ ARR₋₋ B[j] for each of the robot pick/placepositions for rail B is checked for each iteration of index j. For eachgood package present, a tally of the total number of good packagesNUMB₋₋ B to be transferred to each side rail B is calculated at step 211for each iteration. A check is made at step 213 to determine if thevacuum status at all eight (8) positions for each vacuum rail A, B hasbeen checked. If not, the indexes i and j are incremented at step 215and the cycle is repeated for the next package positions of arrays VAC₋₋ARR ₋₋ A[i] and VAC₋₋ ARR ₋₋ B[j] until all sixteen positions have beenchecked.

In the next step 217, a determination is made as to the total amount oflens packages to be transferred in the current cycle. This is a simpleaddition of the total number of transferable packages, NUMB₋₋ A +NUMB₋₋B, and this value will subsequently be used as explained in greaterdetail below. Steps 219 and 221 of FIG. 8(a) comprise the logic tocompare the values of NUMB₋₋ A and NUMB₋₋ B, respectively, and determinethe difference DIFF₋₋ A, DIFF₋₋ B, respectively, between the totalnumber of packages to be transferred on each respective side rail A, B.If NUMB₋₋ A >NUMB₋₋ B, then there are more packages to be transferred torail A, and one or more of these packages, determined by the variableDIFF₋₋ A, will have to be transferred to vacuum rail B for balancing.Similarly, as shown in steps 223 and 226, if NUMB₋₋ B >NUMB₋₋ A, thenthere are more packages to be transferred to rail B, and one or more ofthese packages, determined by the variable DIFF₋₋ B, will have to beadditionally transferred to vacuum rail A for balancing. If NUMB₋₋B=NUMB₋₋ A, then an equal number of packages are to be transferred toeach side rail, and balancing need not be performed as indicated at step228.

Steps 229 through 239 include the logic for determining exactly thenumber of packages that are to be transferred from rail A to rail B,represented by the variable MOVE₋₋ A, or, from rail B to rail A,represented by the variable MOVE₋₋ B. Thus, if DIFF₋₋ A>DIFF₋₋ B asshown at step 229, and the value of DIFF₋₋ A>=2, as shown at step 231,then variable MOVE₋₋ A is calculated at step 233 as the value of thevariable DIFF₋₋ A divided by two (2). Otherwise, there is no furtherneed to balance, as indicated at step 232. As discussed below, it isnext determined at steps 243 et seq. of FIG. 8(c) exactly which specificpackage will be transferred from vacuum rail A to a correspondingposition on vacuum rail B. Therefore, if DIFF₋₋ B>DIFF₋₋ A as shown atstep 236, and the value of DIFF₋₋ B>=2, as shown at step 238, thenvariable MOVE₋₋ B is calculated at step 239 as the value of the variableDIFF₋₋ B divided by two (2). Otherwise, there is no further need tobalance, as indicated at step 241. A subsequent determination is made atsteps 253, et seq. of FIG. 8(d), which specific package will betransferred from vacuum rail B to a corresponding position on vacuumrail A, as discussed below.

Once the determination is made as to the amount of packages that need tobe transferred and to which vacuum rail A or B requires the packages,(stored in the variable MOVE₋₋ A or MOVE₋₋ B), a determination is madeat step 157 in FIG. 7(c) as to which specific package is to be moved bythe robot gripper 45 from one vacuum rail to the other. This is basedupon which package positions are empty on the side requiring theadditional packages. Steps 243 to 249 in FIG. 8(c) illustrate thesequence for determining which locations are free on vacuum rail B sothat lens packages can be transferred from vacuum rail A. Array MOV₋₋ARR₋₋ A[i], where i=1, . . , 8, is the array that is defined to indicatewhich actual package(s) held by the robot gripper 45 will be moved.Alternately, steps 253 to 259 in FIG. 8(d) illustrate the sequence fordetermining which locations are empty (free) on vacuum rail A so thatlens packages can be transferred from vacuum rail B. Array MOV₋₋ ARR₋₋B[j], where j=1, . . , 8, is the array that is defined to indicate whichactual package(s) held by the robot 45 gripper will be moved. It isunderstood that the robot 40 does not physically remove packages fromline A to line B, but retains those packages by individual vacuum nozzlegrip at positions corresponding to locations where those packages wouldbe placed on line vacuum rail A, so that they may be subsequentlytransferred instead to determined free positions on rail B in asubsequent movement. Likewise, the robot 40 does not physically removepackages from line B to line A, but retains those packages by vacuumnozzle grip at positions corresponding to locations where those packageswould be placed on line vacuum rail B, so that they may be subsequentlytransferred instead to determined free positions on rail A in asubsequent movement.

As shown at step 243 in FIG. 8(c), the pointer FRE₋₋ FOU₋₋ A, whichindicates the number of empty (free) locations in vac. rail line B, isinitialized as equal to zero (0). Additionally, indexes i and j are setequal to one (1). Array VAC₋₋ ARR ₋₋ A[i] i=1, . . , 8, represent thegood package locations, i.e., those locations where the packages carriedby the robot gripper in vacuum nozzle gripper row A can be placed ontocorresponding vacuum rail A. Each position in array VAC₋₋ ARR ₋₋ B[j],where j=1, . . , 8, represent the previously determined filled (notfree) package locations.

The following steps 243 through 249 in FIG. 8(c) illustrate the logicfor determining which selected packages will be placed from vacuum railA, to vacuum rail B to fill the empty positions and maintain the balanceof placed lens packages to within one on each vacuum rail. Specifically,at step 245, the status of a package location on vacuum rail A indicatedby array VAC₋₋ ARR ₋₋ A[i] is compared to the corresponding location onvacuum rail B indicated by array VAC₋₋ ARR ₋₋ B[j] to determine if apackage present on rail A can be moved to a corresponding free positionon rail B by the robot gripper. Another check is made at step 247 toensure that the current value of FRE₋₋ FOU₋₋ A is less than the totalnumber of packages that have to be moved, i.e., FRE₋₋ FOU₋₋ A <MOV₋₋ A.If the above conditions are met, then at step 248, the current value ofFRE₋₋ FOU₋₋ A is incremented by one (1), and a true condition isassigned to the position MOV₋₋ ARR[1] at step 249 to indicate thatparticular package is to be transferred to vacuum rail B. A check ismade at step 246 to determine if all eight (8) transfer positions fortransfer of specific packages from rail A to rail B have been checked.If not, the indexes i and j are incremented at step 244 and the cycle isrepeated for the next package positions of arrays VAC₋₋ ARR ₋₋ A[i] andVAC₋₋ ARR ₋₋ B[j] until all eight positions have been checked.

The PLC then determines at step 159 of FIG. 7(c) as to whether lensesare to be moved from vacuum rail A to vacuum rail B. If this is thecase, then at step 161 the appropriate coordinates are input to therobot 40 by the PLC. The robot is then commanded to start the packagetransfer at step 163.

As shown at step 253 in FIG. 8(d), the pointer FRE₋₋ FOU₋₋ B, whichindicates the number of empty (free) locations in vac. rail line A, isinitialized as equal to zero (0). Additionally, indexes i and j are setequal to one (1). Array VAC₋₋ ARR ₋₋ B[j] j=1, . . , 8, represent thegood package locations, i.e., those locations where the packages carriedby the robot gripper in gripper row B were placed onto correspondingvacuum rail B, and that have not been selectively disposed of ascontaining defective lenses. Each position in array VAC₋₋ ARR ₋₋ A[i],i=1, . . , 8, represent the previously determined filled (not free)package locations.

The following steps 255 through 263 in FIG. 8(d) illustrate the sequencefor moving selected packages, intended to be placed on vacuum rail B, tovacuum rail A to fill the empty positions and maintain the balance ofplaced lens packages to within one on each vacuum rail. Specifically, atstep 255, the status of a package location on vacuum rail B indicated byarray VAC₋₋ ARR ₋₋ B[j] is compared to the corresponding location onvacuum rail A indicated by array VAC₋₋ ARR ₋₋ A[i] to determine if apackage present on rail B can be moved to rail A by the robot gripper.Another check is made at step 257 to ensure that the current value ofFRE₋₋ FOU₋₋ B is less than the total number of packages that have to bemoved, i.e., FRE₋₋ FOU₋₋ B <MOV₋₋ B. If the above conditions are met,then at step 258, the current value of FRE₋₋ FOU₋₋ B is incremented byone (1), and a true condition is assigned to the position MOV₋₋ ARR[1]at step 259 to indicate that that particular package is to betransferred to vacuum rail A. A check is made at step 261 to determineif all eight (8) transfer positions for transfer of specific packagesfrom rail A to rail B have been checked. If not, the indexes i and j areincremented at step 263 and the cycle is repeated for the next packagepositions of arrays VAC₋₋ ARR ₋₋ A[i] and VAC₋₋ ARR ₋₋ B[j] until alleight positions have been checked. A determination is then made at step159 of FIG. 7(c) as to whether lenses are to be moved from vacuum rail Bto vacuum rail A. If this is the case, then at step 162 the appropriatecoordinates are input to the robot 40 from the PLC. The robot is thencommanded to start the package transfer at step 163.

After the lens packages have been transferred to the empty locations onvacuum rail by robot gripper, as indicated as step 163 in FIG. 7(c), theinformation from the previous position (robot gripper position {8})stored in STACK₋₋ OCC[8] and the elapsed dry-time since DI-water removalstored in STACK₋₋ ARR[8] is shifted to the respective variablesrepresenting their new position on the stack i.e., STACK₋₋ OCC[7],STACK₋₋ ARR[7], respectively. Specifically, at step 165 in FIG. 7(c).

STACK₋₋ OCC[7]:=STACK₋₋ ARR[8];

STACK₋₋ ARR[7]:=STACK₋₋ ARR[8];

The elapsed time and positional information from robot tooling position{8} is re-initialized for the new process to occur at that position.Thus, STACK₋₋ OCC[8]:=0, indicates that there is an unoccupied positionat location {8}. Additionally, STACK₋₋ ARR[8]:=0, indicates that thereis no time stamp information at the location {8}.

If the current elapsed time STACK₋₋ ARR[9] is greater (>) than the drytime-out limit DRY₋₋ TIME, as determined at step 115 in FIG. 7(a), thenthe robot gripper 45 will pick up the lenses at the predeterminedpick-up position 29 and reject all of the lenses immediately on to thereject (idler) conveyor 41. Thus, at step 167, the coordinates of thepick-up position 29 at the DI₋₋ water conveyor 26 are stored withinRobot 40 and request pick-up position 29 is communicated to the Robot 40by the PLC. After receiving the robot handshake at step 169, the robotis commanded to move to the pick-up position. When the robot reaches theposition, a vacuum is applied to side B of the robot gripper nozzles sothat they may pick-up packages from the first row of the pallet array,as shown at step 171 in FIG. 7(a). Since, sixteen (16) packages in a 2×8array are picked up at a time by the robot 40, a vacuum is then appliedto side A of the robot gripper nozzles so that lenses may be picked upfrom the other row of packages from the package pallet. This isindicated at step 173. Since these packages have been determined to beold, the next step 176 is to communicate to the robot 40 the coordinatesfor movement to the reject position. After receiving the robot handshakeat step 177, the robot is commanded to move to the package rejectposition at step 178. When the robot reaches the position at step 179,the PLC will command the robot to dump the packages as indicated at step181. Finally, the robot is commanded to move to a home position at step183, and is returned to step 111 to begin the pick-up and place sequencefor the next cycle.

Vacuum Rail Consolidation

After lens packages are balanced on respective sides A, B of the vacuumrail stack 50, consolidation takes place. A pair of independentlyadvanceable pneumatic stacking cylinders 52(a), 52(b), shown interfacedwith the PLC in FIG. 1, are extended in the direction of arrow "B" toadvance the placed packages from their present positions on respectivevacuum rails A, B (stack) and consolidate them at the buffer robot 40(pick-up) point 57 located at the end of the stack. Besides ensuringefficient automatic serial product flow, consolidation is necessary toensure that the robot gripper 65 of the second robot (buffer) assembly60 will pick up a 2×5 array of lens packages at each machine cycle, or,perform a different function depending upon the respective status of thestack, the buffer storage area, and, the indexing package dial.Operational details of the cylinders 52(a),52(b) are described infurther detail in the above-mentioned co-pending patent applicationU.S.S.N. 08/257,791.

FIG. 9 illustrates the PLC logic employed for controlling the vacuumrail consolidation aspect of the packaging station, and, further, thelogic for shifting elapsed dry time status information and positionalinformation for each lens package array as it is advanced along thevacuum rail. The first step 301, is to initialize all subroutinesincluding the routine for determining the next free position on thestack, i.e., positions {7} through {1} as shown in FIG. 1, and theroutine for moving the time and positional data to the next freeposition. Thus, at step 305, a decision is made as to whether the firstposition 57 on stack 50 is empty or free which would indicate that robot60 has just picked a 2×5 array from the stack and the stack is full.Each and every position on the stack will be considered free because thestacking cylinders will advance each lens package array on the stack tothe next free position on the stack. Thus, if position {1} is unoccupiedand there is no elapsed dry time status information for position {1},i.e.,

if STACK₋₋ OCC[1]=0; then then each elapsed dry time status andpositional status data for each location on the stack is shifted to thenext free location, as indicated at step 307, i.e.,

STACK₋₋ ARR[1]:=STACK₋₋ ARR[2];

STACK₋₋ OCC[1]:=STACK₋₋ OCC[2];

STACK₋₋ ARR[2]:=STACK₋₋ ARR[3];

STACK₋₋ OCC[2]:=STACK₋₋ OCC[3];

STACK₋₋ ARR[3]:=STACK₋₋ ARR[4];

STACK₋₋ OCC[3]:=STACK₋₋ OCC[4];

STACK₋₋ ARR[4]:=STACK₋₋ ARR[5];

STACK₋₋ OCC[4]:=STACK₋₋ OCC[5];

STACK₋₋ ARR[5]:=STACK₋₋ ARR[6];

STACK₋₋ OCC[5]:=STACK₋₋ OCC[6];

STACK₋₋ ARR[6]:=STACK₋₋ ARR[7];

STACK₋₋ OCC[6]:=STACK₋₋ OCC[7];

Concurrently, at step 303, the package positioning cylinder 54, which isextensible in the directions indicated by arrow "C" as shown in FIG. 1to align package arrays at a fixed reference location so that the robot60 may pick up the package array, is retracted from its extendedposition. Then, at step 309, the stacking cylinders 52(a),(b) arecommanded to extend forward in the direction of arrow B in FIG. 1 alongthe rail until the string of lens packages or the stacking cylindersthemselves trigger either of the limit sensors 56(a),(b) at step 310.Until the packages or a stacking cylinder triggers the limit sensors56(a),(b), the system is in a wait mode as indicated at step 311. Afterthe limit sensor is triggered, the PLC enables the stacking cylinders toretract to their original positions beyond the package delivery point(position {7} shown in FIG. 1) as shown at step 312 in FIG. 9(a). Next,the packaging position cylinder is extended in the direction of arrow"C" in FIG. 1 and indicated at step 314 to align the lens packagespresent at the fixed reference position {1} so that the second robot 60may pick up the array from that position.

After the positioning cylinder is extended, the elapsed dry-time andpositional status information from the package array positions on thestack must be advanced in accordance with their new locations on thestack. For e.g., the packages that were present on the stack at position{7} (package placement position) may be advanced by the stackingcylinders to position {1}, or {3}, or {6}, for e.g., depending upon theamount of packages already placed on the stack. Thus, the next step 316is to shift the elapsed time and status data accordingly to that stackposition. To find that position and shift the data, the following logicis employed:

    ______________________________________                                        IF LENS.sub.-- IN.sub.-- STAC > 0 AND LENS.sub.-- IN.sub.-- STAC < 10           THEN NEXT.sub.-- STAC:=1;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 10 AND LENS.sub.-- IN.sub.-- STAC < 20          THEN NEXT.sub.-- STAC:=2;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 20 AND LENS.sub.-- IN.sub.-- STAC < 30          THEN NEXT.sub.-- STAC:=3;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 30 AND LENS.sub.-- IN.sub.-- STAC < 40          THEN NEXT.sub.-- STAC:=4;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 40 AND LENS.sub.-- IN.sub.-- STAC < 50          THEN NEXT.sub.-- STAC:=5;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 50 AND LENS.sub.-- IN.sub.-- STAC < 60          THEN NEXT.sub.-- STAC:=6;                                                   ENDIF;                                                                        IF LENS.sub.-- IN.sub.-- STAC > 60 AND LENS.sub.-- IN.sub.-- STAC < 70          THEN NEXT.sub.-- STAC:=7;                                                   ENDIF;                                                                        ______________________________________                                    

As will be explained in greater detail below, the variable LENS₋₋ IN₋₋STAC represents the current total amount of lens packages in the stackat any one time. The variable NEXT₋₋ STAC represents the next free stackposition as determined. Therefore, as indicated in the same step, datais shifted from the package placement position {7} to the new positiondepending upon the current size of the stack. i.e.,

    ______________________________________                                        IF NEXT.sub.-- STAC >= 1 AND STACK.sub.-- OCC[1] = 0 THEN                     STACK.sub.-- OCC[1]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[1]:=STACK.sub.-- ARR[7];                                     ENDIF;                                                                        IF NEXT.sub.-- STAC >= 2 AND STACK.sub.-- OCC[2] = 0 THEN                     STACK.sub.-- OCC[2]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[2]:=STACK.sub.-- ARR[7];                                     ENDIF;                                                                        IF NEXT.sub.-- STAC >= 3 AND STACK.sub.-- OCC[3] = 0 THEN                     STACK.sub.-- OCC[3]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[3]:=STACK.sub.-- ARR[7];                                     ENDIF;                                                                        IF NEXT.sub.-- STAC >= 4 AND STACK.sub.-- OCC[4] = 0 THEN                     STACK.sub.-- OCC[4]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[4]:=STACK.sub.-- ARR[7];                                     ENDIF;                                                                        IF NEXT.sub.-- STAC >= 5 AND STACK.sub.-- OCC[5] = 0 THEN                     STACK.sub.-- OCC[5]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[5]:=STACK.sub.-- ARR[7];                                     ENDIF;                                                                        IF NEXT.sub.-- STAC >= 6 AND STACK.sub.-- OCC[6] = 0 THEN                     STACK.sub.-- OCC[6]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[6]:=STACK.sub.-- ARR[7];                                     ELSE                                                                          STACK.sub.-- OCC[6]:=0;                                                       STACK.sub.-- ARR[6]:=0;                                                       ENDIF;                                                                        IF NEXT.sub.-- STAC >= 7 AND STACK.sub.-- OCC[7] = 0 THEN                     STACK.sub.-- OCC[7]:=STACK.sub.-- OCC[7];                                     STACK.sub.-- ARR[7]:=STACK.sub.-- ARR[7];                                     ELSE                                                                          STACK.sub.-- OCC[7]:=0;                                                       STACK.sub.-- ARR[7]:=0;                                                       ENDIF;                                                                        ______________________________________                                    

Note that the elapsed time and positional information from vacuum railstack positions {7} will be reinitialized for the new process to occurat that position. Thus, STACK₋₋ OCC[7]:=0, indicates that there is anunoccupied position, due to consolidation, at location {7}.Additionally, STACK₋₋ ARR[7]:=0, indicates that there is no time stampinformation at the location {7}.

Concurrent with or immediately after the next free position iscalculated and the data is shifted, the packaging position cylinder isretracted at step 318 to align the lens packages present at position {1}so that the second buffer robot 60 may now pick a package array fromthat position.

Vacuum Rail to Package Dial or Buffer Delivery

Depending upon the status of the stack, i.e., the amount of lenspackages at a first position thereof, and the status of the packageindex dial, and, the amount of lens packages buffer storage area, therobot gripper 65 of buffer robot 60 will pick up a 2×5 array of packagesfrom position 57 of the vacuum rails A, B, (stack), and, depending uponthe status condition of the lens packaging dial 200, will either placethe packages on a support pallet positioned on the package dial, or,will place the packages in one of fifty pallets 201 located at thebuffer storage area 180 where the packages will be interimly storeduntil the package dial is ready to receive the array.

As illustrated in the flow diagram of FIGS. 10(a)-(f), thisdetermination is made by the PLC control system.

In FIG. 10(a), step 403 initializes software (math) subroutines anddisables emergency stops (E-stops). If the lens package consolidationsystem is just starting up, the PLC initiates the robot pick and placesequences at step f3 and communicates the robot buffer robot homeposition, and buffer storage area good lens package pick-up positionand, buffer storage area delivery positions, as indicated at step 403 inFIG. 10(a). As part of the process for calculating the position in thebuffer storage area where the robot could pick up a good lens package, aloop is executed where the PLC checks each buffer location CHK₋₋ POS tofind a "1" in POS₋₋ OCC[CHK₋₋ POS] indicating a good lens package. Whena one is found and this position is older than the oldest so far, i.e.,the elapsed time POS₋₋ ARR[CHK₋₋ POS] is greater than the current oldestelapsed time, then the current POS₋₋ OCC[CHK₋₋ POS] will be declared theoldest. In the process for calculating a good delivery position for therobot, a loop is executed where the PLC checks the status of each bufferstorage location (POS₋₋ OCC[CHK₋₋ POS]) to find a "0" in POS₋₋ OCC. A"0" indicates that the buffer position is free. When a zero is found,this position is assigned as the delivery position "DEL₋₋ POS". Thesubroutine is exited and a good lens package delivery position is readyto be communicated to the robot 60 at step 403.

If the robot is not in an automatic run mode as determined at step 404,then the robot is commanded to go to a safe position at step 405 and therobot will be placed in a wait mode until the system is ready to run.

In steady state, after lens package consolidation, the PLC controlsystem will determine the status of the vacuum rail stack, the bufferstorage area 180, and, in addition, check the status of the package dial200 and the elapsed dry-time status up to this point of the packageconsolidation sequence, before enabling the buffer robot 60 to pick andplace lens packages onto the package dial. As shown at step 410 in FIG.10(a), the PLC will first determine whether: the amount of packages atthe buffer robot pickup point on the vacuum rails A, B is sufficient forthe buffer robot to pick an array, whether the package index dial 200 isready to receive the array from the vacuum rail stack, and, whether allsoftware interlocks on the package dial are safe. If the above criteriaare met, the PLC will make an additional determination as to whethergood lens packages are present in the buffer storage area as shown atstep 411.

If lens packages are present in the buffer area as indicated at step411, the PLC will communicate the good package pick-up position, asindicated by the variable G₋₋ PICK₋₋ POS, from one of the 42 positionsin the buffer storage area, as indicated previously at step 403, andcommunicates the good package pick-up position to the buffer robot atstep 414 which provide hand shaking at step 416. At step 417, the PLCinitiates a start signal to enable the robot gripper to move to thebuffer area lens package pick-up position and the robot will handshakean acknowledge signal at step 419.

Steps 420 and 421 are next concurrently executed to prepare the robotfor package pick-up. Specifically, step 421 initiates handshakingbetween the PLC and the robot to enable vacuum to be supplied to thebuffer robot gripper. At step 420, the PLC communicates the coordinatesfor the place position 8 at the package index table. At the followingstep 423, the elapsed dry time status and position information for thepicked array of lens packages is moved from the buffer pick positionrepresented in array POS₋₋ ARR[G₋₋ PICK₋₋ POS] to the robot toolingposition which is always represented as array position 50, i.e., POS₋₋ARR[50]. Note that the status is also put into position, i.e., POS₋₋OCC[50] :=POS₋₋ OCC[G₋₋ PICK₋₋ POS]. The timer and status informationfor the previously occupied good pick position POS₋₋ ARR[G₋₋ PtCK₋₋POS], POS₋₋ OCC[G₋₋ PICK₋₋ POS], respectively, is then re-initialized ascontaining no data (:=0).

The buffer robot is now ready to place the array of lens packages toposition 8 of the index dial 200 and at step 425 it waits until theindex dial is ready. Once the PLC determines that the index dial isready, the start signal is given to the robot to execute the transfer ofthe package array to the package index dial at step 427 and the PLCwaits for the robot gripper to reach its registered position. Next thevacuum for the robot gripper is turned off at step 439 and the packagearray is placed at the desired position on the index dial. At step 431,the position status information is transferred from the robot toolingposition POS₋₋ OCC[50] to the index dial position 8, represented asIDX₋₋ OCC[8], which now retains the 2×5 array of lens packages. The datacontained in the robot tooling position POS₋₋ ARR[50],POS₋₋ OCC[50] isreinitialized as containing no data. After the robot has dropped off thepackages, the PLC commands the robot to retract from its position asindicated at step 433.

In FIG. 10(b) at step 435, a decision is made as to whether the bufferstorage area is full lens package arrays or contains at least one lenspackage array. If the buffer area is full the process continues and atstep 437, the package index dial is indexed to advance the package arrayto its next indexing position. If the buffer area contains at least onepackage array but is not full, the process continues and at step 439,the package index dial is released to advance to its next indexingposition. Concurrently therewith, at step 441, the coordinates of thefirst pick-up position {1} on the stack (vacuum rails A, B), asillustrated in FIG. 1, are communicated by the PLC to the buffer robot.The robot responds by moving into the robot received position at step443. At step 445, the PLC waits for the stack ready signal indicatingthere is an array of lens packages waiting to be picked up by the robot.After receiving this signal, the robot is handshaked and receives astart signal at step 447 to move into the stack pick up position. Whenthe robot reaches that position, the vacuum for the robot gripper isturned on at step 449. At step 451, the elapsed dry-time information isshifted from the first position {1} of the vacuum rail, STACK₋₋ ARR[1],to the robot tooling position, POS₋₋ ARR[50]. Additionally, the lenspackage status information is shifted from the first position of thevacuum rail, STACK₋₋ OCC[1], to the robot tooling position, POS₋₋OCC[50]. The time and status information for the first stack positionSTACK₋₋ ARR[1], STACK₋₋ OCC[1], respectively, is then re-initialized toa no data state.

Given the time and status data, the PLC determines if the lenses in thestack are good at step 453. If it is determined that the lenses aregood, then the variable representing the total amount of lens packagesin the stack, LENS₋₋ IN₋₋ STAC, is decremented by ten (10) at step 455.Next, the PLC commands the robot to move the lens package array from thefirst stack position {1} to a location in the buffer storage area 180.Thus, at step 457, the coordinates for the previously determined bufferdelivery (place) position is communicated by the PLC to the bufferrobot. After receiving the coordinates, the robot is handshaked andreceives a start signal at step 459 to move into the stack pick upposition. When the robot reaches that position and after appropriatehandshaking, the vacuum for the robot gripper is turned off at step 461and the packages are delivered to the buffer storage area. At step 463the elapsed dry-time information for the picked array of lens packagesis shifted from the robot tooling position POS₋₋ ARR[50] to the bufferdelivery (place) position represented in array POS₋₋ ARR[DEL₋₋ POS].Note that the elapsed dry time status information is also shiftedaccordingly, i.e., POS₋₋ OCC[DEL₋₋ POS] :=POS₋₋ OCC[50]. The dry timeand status information for the previously occupied robot toolingpositions POS₋₋ ARR[50], POS₋₋ OCC[50], respectively, are reinitializedas containing no data. Next, at step 466 a determination is made as towhether the stack and the package index dial is or will soon be readyand robot is to be placed in its wait or "home" position. If so, thecoordinates for the robot home position are communicated to the robotand the start signal for moving the robot to its home position is givenat step 467. If it is determined at step 466 that the vacuum rail stackis ready to have a package array removed therefrom, and that the packageindex dial is ready to be serviced, then the process will start all overagain at step 403 and the position variables and software interlocks aredisabled.

If it is determined that the lens packages at the first stack positionwere bad, then the PLC commands the robot to move the lens package arrayfrom the first stack position to a predetermined scrap location 182(POS₋₋ OCC[60]) in the buffer storage area 180 as shown symbolically inFIG. 1. Thus, at step 469, the coordinates for the scrap deliveryposition is communicated by the PLC to the buffer robot. After receivingthe coordinates, the robot is handshaked and receives a start signal atstep 471 to move to the scrap delivery position. At step 473, the vacuumfor the robot gripper is subsequently removed and the array of packagescontaining timed out lenses are scrapped at the scrap delivery position.The sequence is ready to begin again as indicated at step 403.

If lens packages are not present in the buffer area as determined atstep 411, the PLC will communicate the coordinates of the stack pick-upposition {1} to the buffer robot at step 472 in FIG. 10(a). The robotresponds by moving into the robot received position at step 475 andadditionally the PLC waits for the stack ready signal indicating thereis an array of lens packages waiting to be picked up by the robot. Afterreceiving this signal, the robot is handshaked and receives a startsignal at step 476 to move into the stack pick up position. When therobot reaches that position, the vacuum for the robot gripper is turnedon at step 477. At step 478, the elapsed dry-time status information isshifted from the first position {1} of the vacuum rail 50, STACK₋₋ARR[1], to the robot tooling position, POS₋₋ ARR[50]. Additionally, thelens package positional status is shifted from the first position of thevacuum rail, STACK₋₋ OCC[1], to the robot tooling position, POS₋₋OCC[50]. The time and status information for the first stack positionSTACK₋₋ ARR[1], STACK₋₋ OCC[1], respectively, are then re-initialized toa no data state.

Given the time and status data, the PLC determines if the lenses in thestack were good at step 480. If it is determined that the lenses aregood, then the variable representing the total amount of lens packagesin the stack LENS₋₋ IN₋₋ STAC is decremented by ten (10) at step 482.Next, the PLC commands the robot to pick-up and transfer the lenspackage array from the first stack position to the index package dialdelivery position. Thus, at step 484, the coordinates for the packageindex dial place position is communicated by the PLC to the bufferrobot. After receiving the coordinates, the robot handshakes and thenreceives a start signal at step 486 to move into the package dialdelivery position. When the robot reaches that position, the vacuum forthe robot gripper is turned off at step 488 and the package arraycontaining good lenses are delivered to the package dial 200. At step489 in FIG. 10(b), the elapsed dry-time information is transferred fromthe robot tooling position POS₋₋ OCC[50] to the index dial position 8,represented as IDX₋₋ OCC[8], which now retains the 2×5 array of lenspackages. The data contained in the robot tooling position POS₋₋ARR[50], POS₋₋ OCC[50] is reinitialized as containing no data. The robotis then retracted at step 491 and the steady state cycle is repeated.

If it is determined at step 480 that the lens packages at the firststack position are bad, then the PLC commands the robot to move the lenspackage array from the first stack position to a predetermined scraplocation 182 (POS₋₋ OCC[60]) in the buffer storage area 180. Thus, atstep 493, the coordinates for the scrap delivery position iscommunicated by the PLC to the buffer robot. After receiving thecoordinates, the robot is handshaked and receives a start signal at step495 to move to the scrap delivery position. At step 497, after the robotgripper has moved to the scrap delivery position, the vacuum for therobot gripper is removed, and the array of packages containing timed outlenses are scrapped. The sequence is ready to begin again as indicatedat step 403.

Stack Ready, Deliver Package to Buffer Area

If the PLC determines that the vacuum rail stack is or may be ready witha package array for robot pick-up, but the indexing package dial is notready to receive the array, then the following actions indicated fromsteps 510 to 558 in FIG. 10(c) are performed. It should be noted thatthe indexing package dial may not be ready to receive an array for avariety of reasons, such as: package shingling, saline fluid level outof specification, inaccurate foil placement, etc. These conditions mustbe properly met before the heat seal die will extend to seal the packageand index the package dial for moving the sealed package to the nextstation, as will be explained in greater detail below.

First, as indicated at step 511 in FIG. 10(c), the coordinates of thefirst stacking (vacuum rail) position are read into the buffer robot andthe PLC waits for the acknowledge signal. After receiving this signal,the robot handshakes an acknowledge signal at step 512 and receives astart signal at step 513 from the PLC to move into the stack pick upposition. When the robot reaches that position, the vacuum for the robotgripper is turned on at step 515. At step 517, the time information istransferred from the first position {1} of the vacuum rail, STACK₋₋ARR[1], to the robot tooling position, POS₋₋ ARR[50]. Additionally, thelens package status information is transferred from the first positionof the vacuum rail, STACK₋₋ OCC[1], to the robot tooling position, POS₋₋OCC[50]. The time and status information for the first stack positionSTACK₋₋ ARR[1], STACK₋₋ OCC[1], respectively, is then re-initialized toa no data state.

Given the time and status data, the PLC determines if the lenses in thestack were good at step 521. If it is determined that the lenses aregood, then the variable representing the total amount of lens packagesin the stack LENS₋₋ IN₋₋ STAC is decremented by ten (10) at step 523.Next, the PLC commands the robot to move the lens package array from thefirst stack position to a location in the buffer storage area 180. Thus,at step 525, the coordinates for an open buffer delivery (place)position is communicated by the PLC to the buffer robot. After receivingthe coordinates, the robot is handshaked and receives a start signal atstep 527 to move into the buffer delivery position. When the robotreaches that position, the vacuum for the robot gripper is turned off atstep 529 and the package array containing good lenses are delivered tothe buffer area 180. At step 531 the elapsed dry time information forthe picked array of lens packages is moved from the robot toolingposition POS₋₋ ARR[50] to the current buffer delivery (place) positionrepresented in array POS₋₋ ARR[DEL₋₋ POS]. Note that the positionalstatus information is also transferred accordingly, i.e., POS₋₋OCC[DEL₋₋ POS]:=POS₋₋ OCC[50]. The timer and status information for thepreviously occupied robot tooling positions POS₋₋ ARR[50], POS₋₋OCC[50], respectively, are then re-initialized as containing no data.Next, at step 535 a determination is made as to whether the robot is tobe placed in its wait or "home" position. If so, the coordinates for therobot home position are communicated to the robot at step 537 and thestart signal for moving the robot to its home position is given at step537 and the robot handshakes an acknowledge signal. If it is determinedat step 535 that the vacuum rail stack is ready to have a package arrayremoved therefrom, and that the package index dial is ready to beserviced, then the process will start all over again at step 403 and theposition variables and software interlocks are disabled.

If it is determined at step 521 that the lens packages at the firststack position are bad, then the PLC commands the robot to move the lenspackage array from the first stack position to the predetermined scraplocation 182 in the buffer storage area 180. Thus, at step 553, thecoordinates for the scrap delivery position is communicated by the PLCto the buffer robot. After receiving the coordinates, the robot ishandshaked and receives a start signal at step 556 to move to the scrapdelivery position. At step 558, after the robot gripper has moved to thescrap delivery position, the vacuum for the robot gripper is removed andthe array of packages containing timed out lenses are scrapped. Thesequence is ready to begin again as indicated at step 403.

Buffer Area Package Delivery to Package Dial

If the PLC determines that the indexing package dial is or may soon beready with a package array for robot pick-up, but the vacuum rail stackdoes not have a lens package array for robot pick-up, then the robotwill be commanded to pick a good lens package array from the buffer areaand place it on the indexing package dial as indicated from steps 610 inFIGS. 10(a) and 10(d). Thus, since the subroutine for calculating a goodpick-up position in the buffer, G₋₋ PICK₋₋ POS, is executed at step 403,the PLC communicates the pick-up position to the buffer robot at step611. At step 613, the PLC initiates a start signal to enable the robotgripper to move to the buffer area lens package pick-up position and therobot will handshake an acknowledge signal.

Steps 615 and 618 are next concurrently executed to prepare the robotfor package pick-up. Specifically, at step 615 the PLC enables thevacuum to be supplied to the buffer robot gripper 65. At step 618, thePLC communicates the coordinates for the predetermined package placeposition at the indexing package table. At step 620, the elapsed drytime status for the picked array of lens packages is moved from thebuffer pick position represented in array POS₋₋ ARR[G₋₋ PICK₋₋ POS] tothe robot tooling position represented as POS₋₋ ARR[50]. Note that thedry time status is also put into position, i.e., POS₋₋ OCC[50]:=POS₋₋OCC[G₋₋ PICK₋₋ POS]. The timer and status information for the previouslyoccupied good pick position POS₋₋ ARR[G₋₋ PICK₋₋ POS], POS₋₋ OCC[G₋₋PICK₋₋ POS], respectively, is then re-initialized as containing no data.The buffer robot is now ready to place the array of lens packages to theindex package dial and at step 623 it waits until the index dial isready. Once the PLC determines that the index dial is ready, the startsignal is given to the robot to execute the transfer of the packagearray to the package index dial at step 625 and the PLC waits for therobot gripper to reach its commanded position. Next, after the gripperreaches its delivery position, the vacuum for the robot gripper isturned off at step 629 and the package array is placed at the desiredposition on the index dial. At step 631, the time information istransferred from the robot tooling position POS₋₋ OCC[50] to the indexdial position 8, represented as IDX₋₋ OCC[8], which now retains the 2×5array of lens packages. After the robot has dropped off the packages,the PLC commands the robot to retract from its position as indicated atstep 633. At step 635, the package index dial is released to advance toits next indexing position and the robot returns to the beginning of thesequence at step 403 in FIG. 10(a).

Buffer Area Bad Package Removal

If the PLC determines that the indexing package dial is not requestingthe need for a new lens package array because it has already beenserviced, and, that the vacuum rail stack does not have a lens packagearray for robot pick-up, and furthermore, if it is determined that thebuffer storage area has at least one array of packages that is bad andneeds to be rejected, then the robot will be commanded to pick the badlens package array from the buffer area and scrap it at thepredetermined scrap location as indicated from steps 710-727 in FIGS.10(a) and 10(e). The first step, indicated at step 711, is to calculatethe bad lens package position in the buffer area so that the robot canscrap it. This is a software subroutine (not shown) that checks thepositional status information represented as POS₋₋ OCC[CHK₋₋ POS] foreach buffer position in the storage area. Specifically, the status POS₋₋OCC[CHK₋₋ POS] of each position in the buffer area starting from thefirst position is checked to determine if it contains a value (for e.g.,=2) indicating that that lens package is bad at that location. When abad package position, represented as B₋₋ PICK₋₋ POS, has beendetermined, the PLC communicates that pick-up position to the bufferrobot at step 713. At step 715, the PLC initiates a start signal toenable the robot gripper to move to the buffer area lens package pick-upposition and the robot will handshake an acknowledge signal at step 717.Step 719 is next executed to prepare the robot for package pick-up.Specifically, at step 719, the PLC enables the vacuum to be supplied tothe buffer robot gripper 65 so that the robot may pick up the bad lenspackage. Next, at step 721, the coordinates for the scrap deliveryposition is communicated by the PLC to the buffer robot. Afterappropriate robot handshaking, the robot receives a start signal at step725 to move to the scrap delivery position. At this time, the datacontained in the status variables for that particular buffer locationPOS₋₋ ARR[B₋₋ PICK₋₋ POS], and POS₋₋ OCC[B₋₋ PICK₋₋ POS] isreinitialized as containing no data. At step 727, after the robotgripper has moved to the scrap delivery position, the vacuum for therobot gripper is removed and the array of packages containing timed outlenses are scrapped. The sequence is ready to begin again as indicatedat step 403 in FIG. 10(a).

If the PLC determines that the indexing package dial is not requestingthe need for a new lens package array because it has already beenserviced, and, that the vacuum rail stack has at least one ready arrayof packages for robot pick-up and is not yet full of packages, andfurthermore, if it is determined that the buffer storage area is fullwith good lens package arrays (that have not timed out), then the PLCwill initiate the stack to be released, i.e., enable the pneumatic armto push the most recently placed lens packages for consolidation at thefront of the stack as indicated at step 810 in FIG. 10(f). Then thecycle will again continue at step h1.

As shown in further detail in FIG. 11, after the 2×5 array of packagecarriers has been deposited on support pallet 201, the pallet is rotatedto position 204 where optical sensors verify that a package has beenloaded at each position and that the packages are correctly aligned onthe pallet. Indexing turntable 200 is then rotated again to station 206wherein each of the individual package carriers are dosed withapproximately 950 microliter of a saline solution. The use of deionizedwater in the hydration and inspection steps significantly speeds theproduction line as a whole since the time consuming ionic neutralizationof the polymer from which the lenses are made does not occur until afterthe inspection process. When deionized water is used for hydration andinspection, the final step of the process is to introduce bufferedsaline solution into the final package with the lens and then seal thelens within the package so that final lens equilibration (ionicneutralization, final hydration and final lens dimensioning) isaccomplished in the package at room temperature or during sterilizationafter the lens has been packaged and sealed.

As discussed in further detail in co-pending patent application U.S.S.N.08/257,787 entitled "Rotary Packaging Station" assigned to the sameassignee as the instant invention and the disclosure of which isincorporated by reference herein, after saline dosing at station 206,the saline level is checked at station 208 by appropriate sensor 208ainterfaced with the PLC 100 and the support pallet is then rotated undera final product check station (not shown) to a foil receiving station210 where a foil pick and place unit, having an array of vacuum suctioncups, lifts and places a sheet of laminated covers over the array ofpackage bases. A suitable sensor 210a, interfaced with the PLC 100, isprovided to ensure the placement of the foil is within tolerance. Thepackaging dial 200 is then rotated again to heat sealing station 212where a heat seal mechanism 220 seals a single strip of foil to fiveseparate package carriers in a single high temperature short cyclesealing operation. Packaging dial 200 is then rotated to position 214where a reciprocating transfer head 226 removes the sealed product fromthe packaging dial 200 and transports it in the direction of arrow D forsterilization and cartoning. If the saline fluid level or the placementof the foil is detected as not within predetermined specification, thenthe PLC will not index the rotary package dial 200 until correctiveaction is taken. Thus, packages at the consolidation buffer will betransferred for storage in the buffer area 180.

At the heat sealing radial station, an electrically heated seal head issupported by a pneumatic cylinder which presses the heated seal headagainst the laminated covers on the package bases. A thermocouplemeasures the temperature of the seal head to maintain the temperature ina range from 200°-265° C. An in-line load cell measures the forcegenerated by the pneumatic cylinder, and when a predetermined force isreached, which is a percentage of a possible maximum force, a timer isinitiated. The timer times a relatively short time period ofapproximately 0.4 to 2.0 seconds, after which the pressure in thepneumatic cylinder is released, thereby forming a seal between eachlaminated cover and package base which is both detachable and customerfriendly. The predetermined force is substantially 2700 newtons, whichis approximately 75% of a maximum force of substantially 3600 newtons.

In operation, the back force generated by the pneumatic cylinder ismeasured by an in-line load cell (not shown) connected with the PLC, anda solid state timer is initiated when a force is reached ofapproximately 2700 newtons, which is approximately 75% of the peak forceof approximately 3600 newtons. The solid state timer times a relativelyshort time period of approximately 0.4 to 2.0 seconds, after which thepressure in the pneumatic cylinder is released. This approach, whencompared with similar prior art approaches, is very hot, very hard andvery short, which creates a seal which is both detachable and customerfriendly.

While the invention has been particularly shown and described withrespect to the preferred embodiments thereof, it will be understood bythose skilled in the art that the foregoing and other changes in formand details may be made therein without departing from the spirit andscope of the invention, which should be limited only by the scope of theappended claims.

We claim:
 1. An interactive control system constructed and arranged forcontrolling the automatic packaging of contact lens products in aproduct fabrication facility, said interactive control systemcomprising:(a) testing means for determining whether the products aredefective; (b) a first robot device arranged for periodicallytransferring an individual array of a first predetermined amount ofdiscrete products from a first station to an intermediate conveyor wheresaid individual array is conveyed to a second station; wherein saidfirst robot device removes products from said array that have beendetermined to be defective by said testing means prior to transfer tosaid intermediate conveyor and wherein said intermediate conveyorincludes a means for consolidating the amount of products of saidindividual array transferred to said intermediate conveyor, said robotdevice enabling said consolidating means to consolidate said individualarray of products and to ensure that a second predetermined amount ofproducts is available for transfer to said second station; and (c) acontroller for initiating a time stamp for said individual arraytransferred from said first station and determining elapsed time datafor said individual array and for generating position status dataindicating a good array or a bad array of defective products for saidindividual array as it is conveyed to said second station, saidcontroller shifting said elapsed time data and position status data forsaid individual array as it is conveyed on said intermediate conveyorfor transfer to said second station.
 2. An interactive control systemfor controlling the automatic packaging of products as claimed in claim1, further including second robot device for periodically transferringan individual array of said second predetermined amount of individualproducts from said intermediate conveyor for receipt at said secondstation, said controller initiating rejection of said array of saidsecond predetermined amount of products by said second robot device whensaid shifted elapsed time data for that array is greater than apredetermined time limit.
 3. An interactive control system forcontrolling the automatic packaging of products as claimed in claim 2,wherein said second robot rejects said individual array of said secondpredetermined amount of products at a predetermined scrap location. 4.An interactive control system for controlling the automatic packaging ofproducts as claimed in claim 3 wherein said controller additionallyshifts elapsed time data for said individual array of said secondpredetermined amount and shifts position status data for said individualarray as it transferred to said intermediate storage area.
 5. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claim 2, wherein said controller determineswhether said second station is available to receive said array of saidsecond predetermined amount of products at every said period and furtherenables said second robot device to transfer said individual array ofproducts of said second predetermined amount to an intermediate storagearea when it is determined that said second station is not available toreceive said array of second predetermined amount of products.
 6. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claim 5, wherein said controller determineswhether said second station is available to receive said array of saidsecond predetermined amount of products at every said period and furtherenables said second robot device to transfer said individual array ofproducts from said intermediate storage area to said second station whenit is determined that an individual array of said second predeterminedamount of products is good based on said positional status data.
 7. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claim 5, wherein said controller determineswhether said second station is available to receive said array of saidsecond predetermined amount of products at every said period and furtherenables said second robot device to transfer said individual array ofproducts from said intermediate storage area to said second station whenit is determined that an individual array of a second predeterminedamount of products in not available for transfer from said intermediateconveyor.
 8. An interactive control system for controlling the automaticpackaging of products as claimed in claims 6 or 7, wherein said secondstation includes an indexing package dial, said second robot devicetransferring said individual array of said second predetermined amountof products to a predetermined location on said indexing dial.
 9. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claim 8, wherein said controller initiates saidindexing package dial to index said array of said second predeterminedamount to a subsequent location after said array is transferred to saiddial.
 10. An interactive control system for controlling the automaticpackaging of products as claimed in claim 1, wherein said individualarray of said first predetermined amount of products are arranged infirst row and second rows of products for conveyance on saidintermediate conveyor, said first robot device including means forsimultaneously gripping said first and second row prior to transferringsaid products to said intermediate conveyor.
 11. An interactive controlsystem for controlling the automatic packaging of products as claimed inclaim 10, wherein said intermediate conveyor comprises first and secondrails, said controller enabling said first robot device to transfer eachfirst row of products to said first rail and said second row of productsto said second rail, and further determines the amount of productstransferred on each respective first and second rail at every period.12. An interactive control system for controlling the automaticpackaging of products as claimed in claim 11, wherein said controllerenables said first robot device to maintain the difference in the amountof products transferred to said first and second rail to within apredetermined amount.
 13. An interactive control system for controllingthe automatic packaging of products as claimed in claim 12, wherein saidpredetermined amount is one (1) package.
 14. An interactive controlsystem for controlling the automatic packaging of contact lenses asclaimed in claim 1, wherein contact lenses are contained in a deionizedwater solution in said packages, said first station including adeionized water removal device for removing said deionized water fromeach package of said individual array prior to their transference fromsaid first station.
 15. An interactive control system for controllingthe automatic packaging of contact lenses as claimed in claim 14,wherein said controller generates said time stamp when said deionizedwater is removed from said packages.
 16. An interactive control systemconstructed and arranged for controlling the automatic packaging ofcontact lenses in a contact lens fabrication facility, said interactivecontrol system comprising:(a) testing means for determining whethercontact lenses or contact lens packages is defective; (b) a first robotdevice arranged for periodically transferring an individual array of afirst predetermined amount of discrete contact lens packages eachcontaining a contact lens therein from a first station to anintermediate conveyor where said individual array is conveyed to asecond station; wherein said robot device removes contact lens packagesfrom said array that have been determined to be defective by saidtesting means prior to transfer to said intermediate conveyor andwherein said intermediate conveyor includes a means for consolidatingthe lens packages of said individual array transferred to saidintermediate conveyor, said robot device enabling said consolidatingmeans to consolidate said individual array of packages to ensure that asecond predetermined amount of packages is available for transfer tosaid second station; and (c) a controller for initiating a time stampfor said individual array transferred from said first station anddetermining elapsed time data for each individual array and forgenerating position status data indicating a good array or a bad arrayof defective lenses for said individual array as it is conveyed to saidsecond station, said controller shifting said elapsed time data andposition status data for said individual array as it is conveyed on saidintermediate conveyor for transfer to said second station.
 17. Aninteractive control system for controlling the automatic packaging ofcontact lenses as claimed in claim 16, wherein said robot device rejectscontact lens packages of said array that may previously have beendetermined to be defective prior to transfer to said intermediateconveyor.
 18. An interactive control system for controlling theautomatic packaging of contact lenses as claimed in claim 17, whereinsaid intermediate conveyor includes a means for consolidating the amountcontact lens packages of said individual array transferred to saidintermediate conveyor, said controller enabling said consolidating meansto consolidate said individual array of packages to ensure that a secondpredetermined amount of packages is available for transfer to saidsecond station.
 19. An interactive control system for controlling theautomatic packaging of contact lenses as claimed in claim 16, furtherincluding a second robot device for periodically transferring anindividual array of said second predetermined amount of individualpackages from said intermediate conveyor for receipt at said secondstation, said controller initiating rejection of said array of saidsecond predetermined amount of packages by said second robot device whensaid shifted elapsed time data for that individual array is greater thana predetermined time limit.
 20. An interactive control system forcontrolling the automatic packaging of contact lenses as claimed inclaim 19, wherein said second robot rejects said individual array ofsaid second predetermined amount of packages at a predetermined scraplocation.
 21. An interactive control system for controlling theautomatic packaging of contact lenses as claimed in claim 19, whereinsaid controller determines whether said second station is available toreceive said array of said second predetermined amount of packages atevery said period, and further enables said second robot device totransfer said individual array of packages of said second predeterminedamount to an intermediate storage area when it is determined that saidsecond station is not available to receive said array of secondpredetermined amount of packages.
 22. An interactive control system forcontrolling the automatic packaging of contact lenses as claimed inclaim 21, wherein said controller determines whether said second stationis available to receive said array of said second predetermined amountof packages at every said period and further enables said second robotdevice to transfer said individual array of packages from saidintermediate storage area to said second station when it is determinedthat an individual array of said second predetermined amount of packagesis good based on said positional status data.
 23. An interactive controlsystem for controlling the automatic packaging of contact lenses asclaimed in claim 21, wherein said controller determines whether saidsecond station is available to receive said array of said secondpredetermined amount of packages at every said period and furtherenables said second robot device to transfer said individual array ofpackages from said intermediate storage area to said second station whenit is determined that an individual array of a second predeterminedamount of products in not available for transfer from said intermediateconveyor.
 24. An interactive control system for controlling theautomatic packaging of contact lenses as claimed in claims 22 or 23,wherein said second station includes an indexing package dial, saidsecond robot device transferring said individual array of said secondpredetermined amount to a predetermined location on said indexing dial.25. An interactive control system for controlling the automaticpackaging of contact lenses as claimed in claim 24, wherein saidcontroller initiates said indexing package dial to index said array ofsaid second predetermined amount to a subsequent location after saidarray is transferred to said dial.
 26. An interactive control system forcontrolling the automatic packaging of contact lenses as claimed inclaim 25, wherein said packages are indexed on said indexing packagedial to a saline fill location where said packages containing saidcontact lenses are filled with a saline solution.
 27. An interactivecontrol system for controlling the automatic packaging of contact lensesas claimed in claim 20 wherein said controller additionally shiftselapsed time data for said individual array of said second predeterminedamount and shifts position status data for said individual array as ittransferred to said intermediate storage area.
 28. An interactivecontrol system for controlling the automatic packaging of contact lensesas claimed in claim 19, wherein said time limit is about 12 minutes toabout 14 minutes.
 29. An interactive control system for controlling theautomatic packaging of contact lenses as claimed in claim 16, whereinsaid individual array of said first predetermined amount of packages arearranged in first row and second rows of packages for conveyance on saidintermediate conveyor, said first robot device including means forsimultaneously gripping said first and second row prior to transferringsaid packages to said intermediate conveyor.
 30. An interactive controlsystem for controlling the automatic packaging of contact lenses asclaimed in claim 29, wherein said intermediate conveyor comprises firstand second rails, said controller enabling said first robot device totransfer each first row of packages to said first rail and said secondrow of packages to said second rail, and further determines the amountof packages transferred on each respective first and second rail atevery period.
 31. An interactive control system for controlling theautomatic packaging of contact lens as claimed in claim 30, wherein saidcontroller enables said first robot device to maintain the difference inthe amount of packages transferred to said first and second rail towithin a predetermined amount.
 32. An interactive control system forcontrolling the automatic packaging of contact lenses as claimed inclaim 31, wherein said predetermined amount is one (1) package.
 33. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claims 1 or 16, wherein said elapsed time datafor said individual array and position status data indicating a goodarray or a bad array of defective lenses for said individual array isstored in a corresponding memory locations for said controller.
 34. Aninteractive control system for controlling the automatic packaging ofproducts as claimed in claim 33, wherein said elapsed time data for saidindividual array and position status data are shifted in said controllermemory as said individual array are conveyed toward said second station.